#ifndef RATIONAL_H
#define RATIONAL_H
#include "Expression.h"

namespace TreeExpression {

class Rational : public Expression_CRTP<Rational> {
	public:
		Rational(int _num, int _den);
		Rational(const Rational&);
		~Rational();
		
		virtual AutoPointer<Expression> eval(CopyPointer<Context>&);
		
		int getNumerator() const;
		int getDenominator() const;
		
		virtual std::string getHash() const;
		virtual std::string toString() const;
		
	private:
		int num;
		int den;
};

}

using TreeExpression::Rational;

#endif
